﻿/*
 * KLF Headless Browser
 * Written by Kris Oye <kristianoye@gmail.com>
 * Copyright (C) 2011-2012.  All rights reserved.
 */
namespace KLF.Lib.Browser.DOM.CSS
{
    /// <summary>
    /// The CSSCharsetRule interface represents a @charset rule in a CSS style
    /// sheet. The value of the encoding attribute does not affect the 
    /// encoding of text data in the DOM objects; this encoding is always 
    /// UTF-16. After a stylesheet is loaded, the value of the encoding 
    /// attribute is the value found in the @charset rule. If there was no 
    /// @charset in the original document, then no CSSCharsetRule is created. 
    /// The value of the encoding attribute may also be used as a hint for the
    /// encoding used on serialization of the style sheet.
    /// 
    /// The value of the @charset rule (and therefore of the CSSCharsetRule) 
    /// may not correspond to the encoding the document actually came in; 
    /// character encoding information e.g. in an HTTP header, has priority 
    /// (see CSS document representation) but this is not reflected in the 
    /// CSSCharsetRule.
    /// </summary>
    public class CSSCharsetRule : CSSRule
    {
        #region Constructors

        internal CSSCharsetRule(string enc)
        {
            encoding = enc;
        }

        #endregion

        #region DOM Level 2 CSS Compliance

        /// <summary>
        /// The encoding information used in this @charset rule.
        /// </summary>
        public string encoding
        {
            get
            {
                return _encoding != null ? _encoding.Value : "";
            }
            set
            {
                _encoding = new StringLookup(value);
            }
        }
        internal StringLookup _encoding;

        #endregion
    }
}
